package io.sdl.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.sdl.vo.BackPhotoVo;
import io.sdl.vo.XPhotoVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * @author Dc 1211734836@qq.com
 * @since 1.0.0 2025-03-28
 */
@Data
@TableName("sdl_patients")
public class SdlPatientsEntity {

	private static final long serialVersionUID = 1L;
	/**
	 *
	 */
	@TableId
	private Long patientsId;
	/**
	 * 用户关联账号
	 */
	private String userPhone;
	/**
	 * 档案号
	 */
	private String medicalNo;
	/**
	 * 姓名
	 */
	private String name;
	/**
	 * 性别(0:男,1:女;2:保密)
	 */
	private Integer gender;
	/**
	 * 出生日期
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date birthDate;
	/**
	 * 家长姓名
	 */
	private String parentName;
	/**
	 * 联系电话
	 */
	private String phone;
	/**
	 * 身份证号
	 */
	private String idCard;
	/**
	 * 通讯地址
	 */
	private String address;
	/**
	 * 家族史(0:否,1:是)
	 */
	private Integer familyHistory;
	/**
	 * 初次发现侧弯时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date firstScoliosisDate;
	/**
	 * 月经初潮时间(仅女性)
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date menstruationDate;
	/**
	 * 特发性脊柱侧弯
	 */
	private String diopathicScoliosis;
	/**
	 * 先天性脊柱侧弯
	 */
	private String congenitalScoliosis;
	/**
	 * 其他
	 */
	private String other;
	/**
	 * 首次穿戴支架时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date firstTimeWearing;
	/**
	 * 支架类型
	 */
	private String bracketType;
	/**
	 * 每日穿戴时间(22小时;夜间;部分)
	 */
	private String dailyWearingTime;
	/**
	 * Cobb角T
	 */
	private String cobbAngleT1;
	/**
	 * Cobb角L
	 */
	private String cobbAngleT2;
	/**
	 * 佩戴支具后Cobb角T
	 */
	private String wearCobbAngleT1;
	/**
	 * 佩戴支具后Cobb角L
	 */
	private String wearCobbAngleT2;
	/**
	 * Risser指征(0-5)
	 */
	private Integer risserSign;
	/**
	 * 柔韧度(0-僵硬;1中等;2-柔软)
	 */
	private Integer flexibility;
	/**
	 * 支具适配评估
	 */
	private String bracketTypePg;
	/**
	 * 下肢长度(1:正常,2:左长,3:右长)
	 */
	private Integer legLength;
	/**
	 * 腰段旋转
	 */
	private String protrudingNeck;
	/**
	 * 胸凸
	 */
	private String chestProtrusion;
	/**
	 * 腰凸
	 */
	private String protrudingWaist;
	/**
	 * 身高(cm)
	 */
	private String height;
	/**
	 * 体重(kg)
	 */
	private String weight;
	/**
	 * 坐高(cm)
	 */
	private String sitHigh;
	/**
	 * 正后照
	 */
	private String rearPhoto;
	/**
	 * 后弯腰照
	 */
	private String bendBackPhoto;
	/**
	 * 剃刀背度数
	 */
	private String razorBack;
	/**
	 * 剃刀背度数
	 */
	private String razorBackY;
	/**
	 * 前腰弯照
	 */
	private String bendForwardPhoto;
	/**
	 * 左侧位照
	 */
	private String leftSidePhoto;
	/**
	 * 右侧位照
	 */
	private String rightSidePhoto;
	/**
	 * 正前照
	 */
	private String rightFrontPhoto;
	/**
	 * 背部皮肤变化照片URL
	 */
	private String changesOfBack;
	/**
	 * 是否有过治疗史(0:否,1:是)
	 */
	private Integer previousTreatmentHistory;
	/**
	 * 支具佩戴(0:否,1:是)
	 */
	private Integer wearingBraces;
	/**
	 * 支具制作单位
	 */
	private String supportManufacturingUnit;
	/**
	 * 首次穿戴支具时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date wearingTimeFirst;
	/**
	 * 支具类型
	 */
	private String braceType;
	/**
	 * 每日穿戴时间(22小时;夜间;部分)
	 */
	private String dailyWearingTimeH;
	/**
	 * 体操训练(0:否,1:是)
	 */
	private Integer gymnasticsTrain;
	/**
	 * 体操授课单位
	 */
	private String gymnasticsTrainUnit;
	/**
	 * 体操训练内容(1:施罗德,2:色努,3:其他)
	 */
	private Integer gymnasticsTrainContent;
	/**
	 * 每日训练时长(0-2小时;1-1小时;2-30分钟;3-30分钟以下)
	 */
	private Integer dailyTrainingDuration;
	/**
	 * Cobb角评估(0-改善;1-维持;2加重)
	 */
	private Integer cobbA;
	/**
	 * 中线评估(0-改善;1-维持;2偏移加重)
	 */
	private Integer midline;
	/**
	 * ATR评估(0-改善;1-维持;2加重)
	 */
	private Integer atr;
	/**
	 * 体表中线评估(0-改善;1-维持;2偏移加重)
	 */
	private Integer midlineTb;
	/**
	 * X光片URL
	 */
	private String xPhoto;

	/**
	 * cobb1
	 */
	private String cobb1;
	/**
	 * cobb2
	 */
	private String cobb2;
	/**
	 * cobb3
	 */
	private String cobb3;

	/**
	 * 体表照片URL
	 */
	private String tbPhoto;
	/**
	 * 是否有效
	 */
	private Integer isDel;
	/**
	 * 创建时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date createTime;
	/**
	 * 创建人
	 */
	private Long creater;
	/**
	 * 更新时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date updateTime;
	/**
	 * 更新人
	 */
	private Long updater;
	/**
	 * 备注
	 */
	private String remark;

	@TableField(exist = false)
	private List<BackPhotoVo> imageLists;

	@TableField(exist = false)
	private List<XPhotoVo> imageXList;
}